High-Efficiency Video Coding (HEVC) is a new international video coding standard developed by the Joint Collaborative Team on Video Coding (JCT-VC). HEVC is based on the hybrid block-based motion-compensated DCT-like transform coding architecture. The basic unit for compression, termed coding unit (CU), is a 2N×2N square block. A CU may begin with a largest CU (LCU), which is also referred as coded tree unit (CTU) in HEVC and each CU can be recursively split into four smaller CUs until the predefined minimum size is reached. Once the splitting of CU hierarchical tree is done, each CU is further split into one or more prediction units (PUs) according to prediction type and PU partition. Each CU or the residual of each CU is divided into a tree of transform units (TUs) to apply 2D transforms such as DCT (discrete cosine transform) or DST (discrete sine transform).
In general, a CTU consists of one luma coding tree block (CTB) and two corresponding chroma CTBs. A CU consists of one luma coding block (CB) and two corresponding chroma CBs. Similarly, a PU consists of one luma prediction block (PB) and two corresponding chroma PBs, and a TU consists of one luma transform block (TB) and two corresponding chromaTBs. However, exceptions may occur because the minimum TB size is 4×4 for both luma and chroma (i.e., no 2×2 chroma TB supported for 4:2:0 color format) and each Intra chroma CB always has only one Intra chroma PB regardless of the number of Intra luma PBs in the corresponding Intra luma CB.
For an Intra CU, the luma CB can be partitioned into and predicted by one or four luma PBs, and each of the two chroma CBs is always predicted by one chroma PB. Each luma PB has one Intra luma prediction mode and the two chroma PBs share one Intra chroma prediction mode. Moreover, for the Intra CU, the TB size cannot be larger than the PB size. In each PB, the Intra prediction is applied to predict samples and the generate prediction residues for each TB inside the PB. The Intra prediction utilizes neighboring reconstructed samples of the TB. For each PB, in addition to 33 directional Intra prediction modes, DC and planar modes are also supported to predict flat regions and gradually varying regions, respectively.
For each Inter PU, one of three prediction modes including Inter, Skip, and Merge modes, can be selected. The motion vector predictor is selected from a candidate set according to a motion vector competition (MVC). The candidate set includes spatial and temporal motion candidates derived from reconstructed spatial and temporal neighboring blocks. Multiple references to the motion estimation allow finding the best reference in two possible reconstructed reference picture lists (namely List 0 and List 1). For the Inter mode (also termed as advanced motion vector prediction (AMVP) mode), Inter prediction indicators (List 0, List 1, or bi-directional prediction), reference indices, motion candidate indices, motion vector differences (MVDs) and prediction residual are transmitted. As for the Skip mode and the Merge mode, only Merge indices are transmitted since the current PU inherits the Inter prediction indicator, reference indices, and motion vectors from a neighboring PU referred by the coded Merge index. In the case of a Skip coded CU, the residual signal is also omitted. Quantization, entropy coding, and deblocking filter (DF) are also in the coding loop of HEVC. The basic operations of these three modules are conceptually similar to those used in H.264/AVC.
The HEVC standard also includes Sample Adaptive Offset (SAO) as an in-loop filtering technique applied after DF. SAO aims to reduce sample distortion by classifying deblocked samples into different categories and then adding an offset to deblocked samples of each category.
Intra Prediction Modes
In Intra prediction mode according to HEVC, the decoded boundary samples of adjacent blocks are used as reference data for spatial prediction of a current block. All TUs within a PU use the same associated Intra prediction mode for the luma component and the chroma components. The encoder selects the best luma Intra prediction mode of each PU from 35 options corresponding to 33 directional prediction modes, a DC mode and a Planar mode. The 33 possible Intra prediction directions are illustrated in FIG. 1. The mapping between the intra prediction direction and the intra prediction mode number is shown in FIG. 2. Besides, Planar mode is mapped to Intra prediction mode number 0 while DC mode is mapped to Intra prediction mode number 1.
For the chroma component of an Intra PU, the encoder selects the best chroma prediction modes among five modes including Planar, DC, Horizontal, Vertical and a direct copy of the Intra prediction mode for the luma component. The mapping between Intra prediction direction and Intra prediction mode number for chroma is shown in Table 1.
TABLE 1Intra prediction directionXIntra_chroma_pred_mode026101(0 <= X <= 34)0340000126342626262101034101031113414026101X
When the Intra prediction mode number for the chroma component is 4, the Intra prediction direction for the luma component is used for the Intra prediction sample generation for the chroma component. When the Intra prediction mode number for the chroma component is not 4 and it is identical to the Intra prediction mode number for the luma component, the Intra prediction direction of 34 is used for the Intra prediction sample generation for the chroma component.
Filtering of Neighboring Samples
For the luma component, the neighboring samples used for Intra prediction sample generations are filtered before the generation process. The filtering is controlled by the given Intra prediction mode and transform block size. If the Intra prediction mode is DC or the transform block size is equal to 4×4, neighboring samples are not filtered. If the mode distance between the given Intra prediction mode and vertical mode (or horizontal mode) is larger than predefined threshold, the filtering process is enabled. The predefined threshold is specified in Table 2, where nT represents the transform block size.
TABLE 2nT = 8nT = 16nT = 32Threshold710
For neighboring sample filtering, [1, 2, 1] filter and bi-linear filter are used. The bi-linear filtering is conditionally used if all of the following conditions are true.                strong_Intra_smoothing_enable_flag is equal to 1        transform block size is equal to 32        Abs(p[−1][−1]+p[nT*2−1][−1]−2*p[nT−1][−1])<(1<<(BitDepthY−5))        Abs(p[−1][−1]+p[−1][nT*2−1]−2*p[−1][nT−1])<(1<<(BitDepthY−5))        
Boundary Filtering for DC, Vertical and Horizontal Modes
For DC mode in the HEVC, a boundary filter (or smoothing filter) is applied on DC mode. The boundary prediction samples of DC mode will be smoothed with an [1, 3] or [1, 2, 1] filter to reduce the blocking artifact as shown in FIG. 3. In FIG. 3, bold line 310 indicates a horizontal block boundary and bold line 320 indicates a vertical block boundary. The filter weights for filtering the edge pixels and the corner pixel are shown in block 330.
For Vertical and Horizontal Intra prediction directions, a gradient based boundary filter is applied according to current HEVC standard. FIG. 4 shows an example for the gradient based boundary smoothing filter for Vertical Intra prediction direction. The prediction pixels for the first column of the current block are smoothed according to {circumflex over (P)}i={circumflex over (P)}+(Li−AL)>>2, i=0, 1, 2, . . . , (N−1) and N is the block height. For horizontal Intra prediction, the boundary smoothing can be derived similarly for the first row in the current block.
While the boundary smoothing has helped to improve the visual quality of the Intra prediction, it is desirable to extend the existing boundary smoothing in order to further improve coding efficiency of Intra prediction.